Method and system for task-level access arbitration between virtual modems in a multi-sim multi-standby communication device

ABSTRACT

A multiple-subscriber identity module (multi-SIM) multi-standby communication device comprises a single radio resource unit shared by a plurality of virtual modems (VMs), each uniquely associated with a single one of a plurality of SIM cards. The access to radio resources in the single radio resource unit is controlled for each VM task via a virtual modem controller (VMC). Upon receiving requests for tasks to access radio resources in the single radio resource unit, the VMC arbitrates the access based on task priority information, current activities associated with one or more of the plurality of VMs, and the radio resources available in the single radio resource unit. The access may be immediately accepted, accepted with a delay or rejected. With an immediate access, current activities may be suspended and then resumed once radio resources become available. With a delayed access, the VMC determines what time instants the access may be accepted.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

This patent application makes reference to, claims priority to and claims the benefit from U.S. Provisional Patent Application Ser. No. 61/261,922 filed on Nov. 17, 2009.

This application makes reference to:

-   U.S. application Ser. No. 12/816,782 filed on Jun. 16, 2010, -   U.S. application Ser. No. ______ (Attorney Docket No. 21191US02)     filed on even date herewith, -   U.S. application Ser. No. ______ (Attorney Docket No. 21192US02)     filed on even date herewith, and -   U.S. application Ser. No. ______ (Attorney Docket No. 21193US02)     filed on even date herewith.

Each of the above stated applications is hereby incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

Certain embodiments of the invention relate to communication systems. More specifically, certain embodiments of the invention relate to a method and system for task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device.

BACKGROUND OF THE INVENTION

With the development of mobile communication systems, mobile devices may utilize various mobile communication techniques such as, for example, global system for mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE) network and wireless local area network (WLAN) to receive desired services. In instances where a mobile device subscribes to a communication network, subscriber information may be required to identify the mobile device to the network for various network services such as authentication, accounting, billing and security services. The subscriber information may be stored in a subscriber identity module (SIM) card inserted in the mobile device. A SIM card is a card or a chip installed in the mobile device providing information to identify the subscriber carrying the mobile device to networks.

Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.

BRIEF SUMMARY OF THE INVENTION

A method and/or system for task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.

These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating an exemplary communication system that is operable to support task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device, in accordance with an embodiment of the invention.

FIG. 2 is a block diagram illustrating an exemplary multi-SIM multi-standby communication device that is operable to perform task-level access arbitration between virtual modems to support multi-standby operation, in accordance with an embodiment of the invention.

FIG. 3 is a block diagram illustrating an exemplary multi-instance virtual modem approach to concurrently handle multi-instance tasks on a multi-SIM multi-standby communication device, in accordance with an embodiment of the invention.

FIG. 4 is a block diagram illustrating an exemplary operation state machine that is utilized by a virtual modem controller to manage radio resource usage among a plurality of virtual models, in accordance with an embodiment of the invention.

FIG. 5 is a flow chart illustrating exemplary steps that may be utilized by a virtual modem controller to perform task-level access arbitration between virtual modems, in accordance with an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Certain embodiments of the invention may be found in a method and system for task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device. In various embodiments of the invention, a multiple-subscriber identity module (multi-SIM) multi-standby communication device comprises a single radio resource unit providing layer 1, namely, physical layer (PHY), and RF, for example, functionalities. A virtual modem architecture (VMA) is deployed on the single radio resource unit to handle operations in a multi-standby mode. The VMA comprises a plurality of virtual modems (VMs), a virtual modem framework (VMF) and a virtual modem controller (VMC). Each of the plurality of VMs is uniquely associated with a single one of a plurality of SIM cards that are coupled to the multi-SIM multi-standby communication device. The VMC may be operable to manage and/or control the usage of available radio resources in the single radio resource unit for each of VM tasks of the plurality of VMs. For example, the VMC may receive one or more requests, from one or more of the plurality of VMs, for one or more tasks to access radio resources in the single radio resource unit. The VMC may be operable to arbitrate the access based on task priority information, current or on-going activities associated with one or more of the plurality of virtual modems, and the availability of radio resources in the single radio resource unit. The VMC may compare activities associated with the intended VM task with on-going activities associated with the one or more of the plurality of VMs for conflict check. In instances where one or more conflicts are identified or detected, the VMC may be operable to make a decision on whether to accept or reject the intended VM task. Depending on device configuration, the intended VM task may be immediately accepted, accepted with a delay or rejected. The VMC may suspend a portion of current activities to ensure an immediate access to the radio resources in the single radio resource unit for the intended VM task. The VMC may return related VMs to idle state to resume the suspended activities once radio resources become available to use. With regard to a delayed access, the VMC may be operable to determine when or what time instants the intended VM task may be accepted to access the radio resources in the single radio resource unit.

FIG. 1 is a diagram illustrating an exemplary communication system that is operable to support task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device, in accordance with an embodiment of the invention. Referring to FIG. 1, there is shown a communication system 100. The communication system 100 comprises a plurality of mobile devices 110, of which multi-SIM multi-standby communication devices 112-116 are illustrated, a UMTS network 130, a Long Term Evolution (LTE) network 140, and a GSM network 150.

A multi-SIM multi-standby communication device such as the multi-SIM multi-standby communication device 112 may comprise suitable logic, circuitry, interfaces and/or code that are operable to communicate various network services such as authentication, billing and/or security with a plurality of communication access networks such as, for example, the UMTS network 130, the LTE network 140, and the GSM network 150. Multiple SIM cards such as SIM cards 112 a may be inserted in the multi-SIM multi-standby communication device 112 whenever needed. The inserted SIM cards 112 a may be coupled or connected with the multi-SIM multi-standby communication device 112 through one or more SIM card sockets or connections. The multi-SIM multi-standby communication device 112 may read or retrieve SIM identification information from the SIM cards 112 a via the one or more SIM card sockets or connections. The retrieved SIM identification information may be stored within the multi-SIM multi-standby communication device 112 to support various network services such as authentication, billing and security whenever needed. In this regard, the multi-SIM multi-standby communication device 112 may be configured to activate the retrieved SIM identification information either on one SIM card at a time or on multiple SIM cards at the same time depending on implementation and/or device configuration. In instances where the retrieved SIM identification information is activated on one SIM card at a time, the multi-SIM multi-standby communication device 112 may operate in a single-standby mode. In instances where the retrieved SIM identification information is activated on two or more SIM cards at the same time, the multi-SIM multi-standby communication device 112 may operate in a multi-standby mode. In this regard, the multi-SIM multi-standby communication device 112 in a multi-standby mode may be operable to support multiple subscriptions at the same time. A user of the multi-SIM multi-standby communication device 112 may be allowed to utilize multiple numbers, multiple different service plans and/or network carriers at the same time whenever the multi-SIM multi-standby communication device 112 is in a multi-standby mode. Each of the multi-SIM multi-standby communication devices 112-116 may utilize a single radio resource unit for Layer 1, namely, physical layer (PHY), DSP and RF functionalities. For example, the single radio resource units 112 c-116 c may comprise suitable logic, circuitry, interfaces and/or code that may be integrated into the multi-SIM multi-standby communication devices 112-116, respectively, to provide PHY, DSP and RF functionalities for desired services.

U.S. application Ser. No. ______ (Attorney Docket No. 21189US02), which is filed on even date herewith provides detailed descriptions that a Virtual Modem Architecture (VMA) may be adopted over a single baseband and DSP chipset to support a multi-standby mode on a multi-SIM multi-standby communication device, and is hereby incorporated herein by reference in its entirety.

The multi-SIM multi-standby communication device 112 may deploy a VMA 112 b over the single radio resource unit 112 c to support operations in a multi-standby mode. The VMA 112 b may be configured to concurrently handle multiple tasks or instances over the single radio resource unit 112 c. Each of tasks or instances is associated with one of the multiple SIM cards 112 a. A task may also be called an instance of a process. An air interface protocol stack and/or a Common Application Programming Interface (CAPI) module may comprise multiple tasks. A collection of air interface protocol stack tasks and/or CAPI tasks associated with a single SIM card together with appropriate physical layer (PHY), DSP functionalities, and/or RF functionalities supported by the single radio resource unit 112 c is referred to as a Virtual Modem (VM). Each VM in the VMA may be assigned to handle instances related to one of the multiple SIM cards 112 a. A VM may be placed or may operate in one of a plurality of VM states, comprising, for example, an active state, an idle state or a suspended state. In an active state, radio resources are assigned to the VM and a valid or active connection between a VM and an associated cell is established for data and/or voice communication. The VM may be allowed to utilize radio resources available in the single radio resource unit 112 c to communicate or support services related to a specific SIM card. In an idle state, no valid or active connection between the VM and an associated cell is established; however, associated registration information is retained in the associated cell/network. In the idle state, the VM may be allowed to utilize limited radio resources available in the single radio resource unit 112 c to monitor paging events and to perform normal idle mode activities such as cell selection/reselection. In a suspended state, a VM may be totally suspended from using radio resources available in the single radio resource unit 112 c. Before entering the suspended state, the VM may need to suspend or abort procedures such as, for example, data transfer, operating band change and/or manual public land mobile network (PLMN) search, which are currently being executed on the VM.

In various exemplary embodiments of the invention, the VMA 112 b may be operable to provide the capability of dividing the total radio resources available in the single radio resource unit 112 c into individual portions, which may be assigned to different VMs in the VMA 112 b. In other words, the total radio resources available in the single radio resource unit 112 c may be shared by different VMs in the VMA 112 b. The VMA 112 b may be operable to govern or manage, through a VMF, the access from multiple VMs to the shared radio resources. In this regard, the VMA 112 b may perform access arbitration, through a virtual modem controller (VMC), at the time that a VM has a VM task to request such dedicated radio resources. In other words, access arbitration may be performed at the VM task level by the VMC of the VMA 112 b to coordinate or control the concurrent accesses to the shared radio resources from multiple VMs.

In various exemplary embodiments of the invention, the VMA 112 b may be operable to detect or check conflicts utilizing the VMC for each of the intended VM tasks requiring an access to the shared radio resources in the single baseband and DSP chipset 112 c. For example, upon receiving a request for a specific VM task to access the shared radio resources, the VMC may be operable to compare activities associated with the specific VM task with on-going or current activities associated with one or more of a plurality of VMs in the VMA 112 b. In instances where an activity and/or radio resource conflict is identified or detected, the VMC may be operable to arbitrate or make a decision on whether the access for the specific VM task should be rejected or accepted. For example, in instances where the on-going activities are associated with one of the plurality of VMs that are operating in an active state, the VMC may reject the access for the specific VM task in order to ensure the usage of radio resources by the VM operating in the active state.

In instances where the VMA 112 b may be operable to utilize the VMC to determine that access for the specific VM task is to be accepted or granted. Information on when the access for the specific VM task is allowed may be determined and may be provided to a VM associated with the specific VM task. More specifically, the VMC may determine what time instants the access for the specific VM task may be accepted. The decision or arbitration for access by the specific VM task may be made based on VM task priority information, activity status of one or more of the plurality of VMs and the actual radio resources available in the single baseband and DSP chipset 112 c. For example, in instances where activities associated with the specific VM task has a higher task priority than on-going or current activities of the one or more of the plurality of VMs, the VMC may suspend at least a portion of the on-going activities and/or VM tasks associated with the one or more of the plurality of VMs in order to accept or grant the access for the specific VM task. A VM comprising suspended activities and/or VM tasks may consider that an associated network is temporarily lost. In this regard, the VM may be operable to simulate or estimate network activities for the temporary lose network. The suspended activities and/or VM tasks may be resumed once radio resources become available in the single radio resource unit 112 c for use.

In instances where the specific VM task is highly expected by the user but the VMC has no radio resources available that may be immediately assigned to the specific VM task, the VMC may delay the access for the specific VM task. In this regard, the VMC may be operable to determine when the access for the specific VM task may be accepted based on the current activity status of the one or more of the plurality VMs. The VMC may signal the VM associated with the specific VM to send a subsequent request to access radio resources in the radio resource unit 112 c for the specific VM task at specific time instants.

In various exemplary embodiments of the invention, the VMA 112 b may be operable to coordinate operations of VMs utilizing the VMC in order to accept a new request for each of the intended VM tasks requiring an access to the shared radio resources in the single radio resource unit 112 c.

The UMTS network 130 may comprise suitable devices, circuitry, interfaces and/or code that are operable to provide data and/or voice services to various UMTS capable communication devices such as the multi-SIM multi-standby communication device 112 using UMTS technology. In this regard, the UMTS network 130 may be operable to authenticate users such as the multi-SIM multi-standby communication devices 112-116 for UMTS access utilizing SIM cards. A SIM card for UMTS is also known as universal subscribe identity module (USIM). Only authorized users may access the UMTS network 130. The UMTS network 130 may be operable to check the validity of USIM identification information on one or more USIM cards coupled to, for example, the multi-SIM multi-standby communication device 112. The UMTS network 130 may determine whether the multi-standby communication device 112 is allowed to access the UMTS network 130 for various network services such as, for example, authentication, accounting and/or billing services.

The LTE network 140 may comprise suitable devices, circuitry, interfaces and/or code that are operable to provide data and/or voice services to various LTE capable communication devices such as the multi-SIM multi-standby communication device 112 using LTE technology. In this regard, the LTE network 140 may be operable to authenticate users such as the multi-SIM multi-standby communication devices 112-116 for LTE access utilizing SIM cards. A SIM card for LTE is also known as Universal Integrated Circuit Card (UICC). Only authorized users may access the LTE network 140. The LTE network 140 may be operable to check the validity of UICC identification information on one or more UICCs coupled to, for example, the multi-SIM multi-standby communication device 112. The LTE network 140 may determine whether the multi-SIM multi-standby communication device 112 is allowed to access the LTE network 140 for various network services such as, for example, authentication, accounting and/or billing services.

The GSM network 150 may comprise suitable devices, circuitry, interfaces and/or code that are operable to provide data and/or voice services to various GSM capable communication devices such as the multi-SIM multi-standby communication device 112 using GSM technology. In this regard, the GSM network 150 may be operable to authenticate users such as the multi-SIM multi-standby communication devices 112-116 for GSM access utilizing SIM cards. Only authorized users may access the GSM network 150. The GSM network 150 may be operable to check the validity of SIM identification information on one or more SIM cards coupled to, for example, the multi-SIM multi-standby communication device 112. The GSM network 150 may determine whether the multi-SIM multi-standby communication device 112 is allowed to access the GSM network 150 for various network services such as, for example, authentication, accounting and/or billing services.

In an exemplary operation, a multi-SIM multi-standby communication device such as the multi-SIM multi-standby communication device 112 may be connected or coupled with multiple SIM cards such as the SIM cards 112 a through one or more SIM card sockets or connections. SIM identification information on the multiple SIM cards may be utilized on one SIM card at a time and/or on multiple SIM cards at the same time depending on implementation. SIM identification information on each of the multiple SIM cards 112 a may be communicated to the multi-SIM multi-standby communication device 112 through the one or more SIM card sockets. The multi-SIM multi-standby communication device 112 may operate in a single-standby mode or a multi-standby mode depending on device configuration and/or user preferences. A user of the multi-SIM multi-standby communication device 112 in a multi-standby mode may be allowed to utilize SIM identification information associated with each of the multiple SIM cards 112 a to receive corresponding services at the same time. In this regard, the multi-SIM multi-standby communication device 112 may be operable to deploy the VMA 112 b over the single radio resource unit 112 c to support a multi-standby mode. The VMA 112 b may be operable to receive, through a VMF, services associated with the multiple SIM cards 112 a at the same time. Each of the VMs in the VMA 112 b is assigned to serve one of the multiple SIM cards 112 a.

There may be instances when a plurality of the VMs may attempt to concurrently access or share radio resources available in the single radio resource unit 112 c. Whenever such circumstances occur, the VMA 112 b may be operable to utilize a VMC to arbitrate each of the concurrent accesses so as to provide sharing of the radio resources available in the single radio resource unit 112 c. Access arbitration may be performed by the VMC whenever a VM task that requires dedicated radio resources is created within the VMA 112 b. For example, the VMA 112 b may receive an admission request from a specific VM for dedicated radio resources at the time that the specific VM deploys a VM task on the single radio resource unit 112 c. The VMC may compare activities associated with the VM task of the specific VM with on-going activities associated with one or more of the plurality of VMs in the VMA 112 b for a procedural and/or radio resource conflict check. In instances where one or more conflicts are detected through the comparison, the VMC may make a decision on whether the access for the intended VM task should be rejected or accepted. According to the VM task priority information, activity status of one or more of the plurality of VMs, and the actual radio resources available in the single radio resource unit 112 c, the access for the intended VM task may be immediately accepted, accepted with a delay, or rejected. In instances where the access for the intended VM task is accepted but with a delay, the VMC may be operable to determine when the intended VM task may be allowed to access the radio resources available in the single radio resource unit 112 c. In instances where an access to radio resources in the single radio resource unit 112 c is delayed, namely, the access is to be accepted or granted in the future instead of at the time when the access is requested, the VMC may be operable to determine what time instants the access for the intended VM task may be accepted or granted. A VM associated with the intended VM task may be operable to request the access for the same intended VM task at the determined one or more time instants if a delayed access occurs.

FIG. 2 is a block diagram illustrating an exemplary multi-SIM multi-standby communication device that is operable to perform task-level access arbitration between virtual modems to support multi-standby operation, in accordance with an embodiment of the invention. Referring to FIG. 2, there is shown a multi-SIM multi-standby communication device 200. The multi-SIM multi-standby communication device 200 comprises a wireless radio unit 202, a user interface unit 204, a processor unit 206, a SIM card controller 208 comprising SIM card sockets 208 a-208 c, a plurality of SIM cards, of which SIM cards 212-222 are illustrated, and a memory 220. The SIM cards 212-222 are coupled to the multi-SIM multi-standby communication device through the SIM card sockets 208 a-208 c. The memory 220 comprises a SIM database 220 a.

The wireless radio unit 202 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to communicate radio frequency signals with various communication networks such as, for example, the LTE network 140 and the GSM network 150. SIM identification information that is retrieved from one or more of the SIM cards 222-228 may be communicated via the wireless radio unit 202 to identify the multi-SIM multi-standby communication device 200 to network for desired network services such as accounting/billing services.

The user interface unit 204 may comprise suitable logic, circuitry, interfaces and/or code that may enable a user to interact with the multi-SIM multi-standby communication device 200. For example, the user interface unit 204 may be operable to present the user with information on SIM cards available to the multi-SIM multi-standby communication device 200. The user interface unit 204 may allow the user to enter a preferred SIM card selection and/or a desired application selection.

The processor unit 206 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to manage and/or control operations of device components such as, for example, the wireless radio unit 202, the user interface unit 204, the SIM database 220 a, and/or the SIM card controller 208. For example, the processor unit 206 may be operable to coordinate and/or control operations of the SIM card controller 208 in response to a SIM card selection from the user interface unit 204. The processor unit 206 may also be operable to run a specific application via the application processor based on an application selection from the user interface unit 204.

The processor unit 206 may be operable to select one or more SIM cards based on user preferences and/or device configuration. The processor unit 206 may communicate the SIM card selection information to the SIM card controller 208 so that the selected one or more SIM cards may be connected to the SIM card sockets 208 a-208 c, which are directly coupled with the processor unit 206. The selected SIM cards may be actively connected to the SIM card controller 208 to enable downloading of corresponding SIM identification information into the SIM database 220 a of the multi-SIM multi-standby communication device 200. Notwithstanding, in accordance with various embodiments of the invention, after SIM identification information is downloaded from each of the selected SIM cards such as the SIM cards 212-222 into the SIM database 220 a of the multi-SIM multi-standby communication device 200, the SIM identification information corresponding to one or more of the plurality of SIM cards may be in an active state or in a standby state in the SIM database 220 a. More specifically, at a given time instant, SIM identification information actually being utilized or applied to access corresponding services by the multi-SIM multi-standby communication device 200 is in an active state, otherwise, in a standby state.

In instances where the multi-SIM multi-standby communication device 200 is configured to operate in a single-standby mode, the processor unit 206 may communicate with the SIM database 220 a to activate the stored SIM identification information related to one SIM card at a time. In other words, the multi-SIM multi-standby communication device 200, in a single-standby mode, may be operable to utilize SIM identification information activated for a single SIM card at a time. In instances where the multi-SIM multi-standby communication device 200 is configured to operate in a multi-standby mode, the processor unit 206 may be operable to communicate with the SIM database 220 a to activate the stored SIM identification information corresponding to multiple SIM cards such as the SIM cards 212-222 at the same time. Specifically, the multi-SIM multi-standby communication device 200, in a multi-standby mode, may be operable to utilize SIM identification information activated for multiple SIM cards at the same time. In this regard, the processor unit 206 may be operable to allow a user of the multi-SIM multi-standby communication device 200 to utilize SIM identification information associated with each of the SIM cards 212-222 to receive corresponding services at the same time. For example, the user may therefore be allowed to utilize multiple numbers, multiple different service plans and/or network carriers associated with each of the multiple SIM cards 212-222 at the same time on the multi-SIM multi-standby communication device 200. The processor unit 206 comprises a communication processor 206 a and an application processor 206 b.

The communication processor 206 a may comprise suitable logic, circuitry, interfaces and/or code that may be operable to utilize a Virtual Modem Architecture (VMA) 206 c over a single radio resource unit such as the single radio resource unit 112 c associated with the wireless radio unit 202 to support a multi-standby mode. The VMA 206 c is a multi-SIM multi-standby platform and comprises a virtual modem controller (VMC), a Virtual Model Framework (VMF) and a plurality of VMs. Each VM in the VMA 206 c is assigned or related to one of the multiple SIM cards 212-222. For a given time instant, a VM may operate in one of a plurality of VM states, namely, an active state, an idle state or a suspended state. To avoid radio resource conflicts, at most one of the VMs in the VMA 206 c may be in an active state to transmit and/or receive traffic related to a corresponding SIM card. One or more VMs may be in an idle state at the same time depending on radio resources available in the single radio resource unit 112 c for sharing. One or more VMs may be in a suspended state at the same time. Radio resources available in the single radio resource unit 112 c may be shared among the VMs.

In various exemplary embodiments of the invention, the VMA 206 c may be operable to assign individual portions of the total radio resources available in the single radio resource unit 112 c to VM tasks of different VMs. Multiple VM tasks may attempt to access or share the radio resources available in the single radio resource unit 112 c simultaneously. In this regard, the VMC of the VMA 206 c may be operable to perform task-level access arbitration in order to manage the concurrent accesses to the shared radio resources from multiple VM tasks.

In various exemplary embodiments of the invention, the VMC of the VMA 206 c may be operable to detect or check conflicts whenever a VM task requiring dedicated radio resources is created within the VMA 206 c. Activities associated with an intended VM task may be compared with on-going activities associated with one or more of the plurality of VMs for a conflict check. The VMA 206 c may be operable to utilize the VMC to track information on the on-going activities of associated VMs. The tracked on-going activity information may be stored in a lookup table 220 b. Upon the detection of one or more conflicts, the VMC may be operable to arbitrate the detected conflicts for the intended VM task based on VM task priority information, activity status of other VMs and radio resources available in the single radio resource unit 112 c. The access for the intended VM task may be immediately accepted, accepted with a delay or rejected by the VMC. In instances where a delayed access occurs for the intended VM, the VMC may be operable to determine when or at what time instants the access for the intended VM task may be accepted or granted. A VM that is associated with the intended VM task may repeat the admission request for the same VM task at the determined time instants to receive traffic related to the SIM card 212, for example. The received traffic may be communicated to the application processor 206 b to support desired applications.

The application processor 206 b may comprise suitable logic, circuitry, interfaces and/or code that may be operable to run or execute various applications such as video and/or audio multimedia applications based on traffic received by the communication processor 206 a. The application processor 206 b may present applications to users through the user interface unit 204.

The SIM card controller 208 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to manage and/or control connections from multiple SIM cards such as the SIM cards 212-222 to the SIM card sockets 208 a-208 c, which are directly coupled with the processor unit 206. In this regard, the SIM card controller 208 may be operable to establish connections between the SIM cards 212-222 and the processor unit 206. The SIM card controller 208 may be configured to switch SIM card connection from one to another as needed without re-booting the multi-SIM multi-standby communication device 200.

A SIM card such as the SIM card 214 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to store subscriber personal identification information such as, for example, operator network, phone number, activated services, billing, and credit information. The SIM card 214 may also store the user's identity for gaining access to the network and receiving calls, and user's personal information such as phone directory and received SMS messages. The SIM card 214 may be implemented as a small printed circuit board. The SIM card 214 may be inserted in a mobile device such as the multi-SIM multi-standby communication device 200 in order for the multi-SIM multi-standby communication device 200 to properly access a corresponding network. The SIM card 214 may be connected to the multi-SIM multi-standby communication device 200 via the SIM card controller 208.

The memory 220 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to store information such as executable instructions and data that may be utilized by the processor unit 206 and/or other device components such as, for example, the SIM database 208 a. The SIM database 208 a may comprise suitable logic, circuitry, interfaces and/or code that may be operable to record and/or store SIM identification information retrieved from one or more SIM cards such as the SIM cards 212-222. The stored SIM identification information may be in an active state or in a standby state within the SIM database 220 a. For a given time instant, only SIM identification information in an active state may be actually utilized or applied by the multi-SIM multi-standby communication device 200 to support desired network services such as accounting/billing services. Depending on device configuration, for a given time instant, SIM identification information in an active state may correspond to one or more SIM cards. The lookup table 220 b may be stored in the memory 220 and may comprise data or information related to on-going and/or past activities that are currently executed on VMs in the VMA 206 c. The lookup table 220 b may be utilized to determine if and when the may be conflicts between activities associated with an intended VM task and on-going activities associated with one or more of the plurality of VMs within the VMA 206 c. The memory 220 may comprise RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage.

In an exemplary operation, a multi-SIM multi-standby communication device such as the multi-SIM multi-standby communication device 200 may be connected or coupled to multiple SIM cards such as the SIM cards 212-222 through the SIM card controller 208. The processor unit 206 may be operable to retrieve SIM identification information from the SIM cards 212-222. The retrieved SIM identification information may be stored in the SIM database 220 a. In instances where the multi-SIM multi-standby communication device 200 is configured to operate in a multi-standby mode, the communication processor 206 a may communicate with the SIM database 220 a to activate the stored SIM identification information corresponding to multiple SIM cards such as the SIM cards 212-222 at the same time. More specifically, the multi-SIM multi-standby communication device 200, in a multi-standby mode, may utilize SIM identification information activated for the SIM cards 212-222 at the same time. A user of the multi-SIM multi-standby communication device 200 may therefore be allowed to receive services related to the SIM cards 212-222 at the same time. The communication processor 206 a may run the VMA 206 c over the single radio resource unit 112 c to handle traffic through the wireless radio unit 202. Radio resources available in the single radio resource unit 112 c may be shared among the VMs in the VMA 206 c.

A plurality of VM tasks may attempt to access or share the radio resources available in the single radio resource unit 112 c concurrently. The VMA 206 c may be operable to utilize the VMC to perform task-level access arbitration in order to control the concurrent access to the shared radio resources from multiple VM tasks. For an intended VM task, the VMC may be operable to utilize the lookup table 220 b to compare activities associated with the intended VM task with on-going activities associated with one or more of plurality of VMs. In instances where one or more actual or perceived conflicts are detected, the VMC may be operable to arbitrate the access for the intended VM task based on VM task priority information, activity status of other VMs and radio resources available in the single radio resource unit 112 c. The access for the intended VM task may be immediately accepted, accepted with a delay or rejected. In instances where the access for the intended VM task is delayed, information on when the intended VM task should be accepted may be determined and provided to the VM that is associated with the intended VM task. The VM may then repeat the admission request for the same VM task at time instants that the access for the intended VM task would be granted. After the admission request is granted, radio resources may be assigned to the VM task to be utilized for associated activities such as receiving traffic related to a corresponding SIM card. The communication processor 206 a may communicate the received traffic to the application processor 206 b. The application processor 206 b may be operable to run or execute various applications such as video and/or audio multimedia applications according to the received traffic and present it to users via the user interface unit 204.

FIG. 3 is a block diagram illustrating an exemplary multi-instance virtual modem approach to concurrently handle multi-instance tasks on a multi-SIM multi-standby communication device, in accordance with an embodiment of the invention. Referring to FIG. 3, there is shown virtual modem architecture 300 utilized on the multi-SIM multi-standby communication device 200, for example. The virtual modem architecture 300 comprises man-machine interface (MMI) module 310, a SIMIO module 320, a virtual modem framework (VMF) 330, a virtual modem controller (VMC) 360, and a single radio resource unit 370.

The MMI module 310 may comprise suitable logic, interfaces and/or code that may be operable to provide interaction between a user of the multi-SIM multi-standby communication device 200 and one or more applications that are executed on the multi-SIM multi-standby communication device 200.

The SIMIO module 320 may comprise suitable logic, interfaces and/or code that may be operable to manage access to SIM cards such as the SIM cards 212-222.

The VMF 330 may comprise suitable logic, interfaces and/or code that may be operable to provide an enhancement to the Real Time Operating System. The VMF 330 may be deployed or implemented on the communications processor 206 a.

A VM such as the VM 340 refers to an instance of an air interface protocol stack and/or its interface to the user, namely, a Common Application Programming Interface (CAPI), together with a single set of radio resources such as radio resources available in the single radio resource unit 370. A VM such as the VM 340 may comprise suitable logic, interfaces and/or code that may be operable to handle instances, namely, CAPI tasks and/or air interface protocol stack instances, associated with one of the SIM cards 212-222. Different VMs such as the VM 340 and the VM 350 may be configured to handle instances corresponding to two different SIM cards. For example, the VM 340 may handle instances related to the SIM card 212, while the VM 350 may be assigned to handle instances related to the SIM card 214. The plurality of VMs such as VMs 340-350 may be configured to share the same set of radio resources, namely, available radio resources in the single radio resource unit 370. In this regard, multiple copies of global and static data may be maintained to be utilized by the VMs 340-350, respectively. A VM such as the VM 340 may operate independently from other VMs and may be in one of the plurality of VM states, namely, an active state, an idle state and a suspended state. The VM 340 may comprise a CAPI task unit 342, a VCC 344, an air interface protocol stack 346 together with the single radio resource unit 370. CAPI and/or stack operations within the VM 340 may be managed via the VCC 344.

The CAPI task unit 342 may comprise suitable logic, interfaces and/or code that may be operable to process MMI or user requests. The CAPI task unit 342 comprises CAPI tasks related to a specific SIM card such as the SIM card 212.

A VCC such as the VCC 344 may comprise suitable logic, interfaces and/or code that may be operable to perform admission control with the VMC 360 for the CAPI module 315 at the primitive levels. The VCC 344 is a dual-instance module for managing its own task or instance, and queuing messages. The VCC 344 may be operable to interact with the VMC 360 for radio resource requests associated with CAPI tasks in the CAPI task unit 342. The VCC 344 may communicate with the air interface protocol stack 346 to coordinate stack operations corresponding to the CAPI tasks in the CAPI task unit 342.

An air interface protocol stack such as the air interface protocol stack 346 may comprise suitable logic, interfaces and/or code that may be operable to provide air interface protocols to support various signaling operations. For example, in 3GPP standard, the stack 346 may comprise Non-Access-Stratum (NAS) protocols and Access-Stratum (AS) protocols to handle bearer level signaling and Radio Resource Control (RRC) signaling, respectively.

The VMC 360 may comprise suitable logic, interfaces and/or code that may be operable to coordinate requests for the usage of radio resources available in the single radio resource unit 370 among multiple associated VMs such as the VM 340 and the VM 350. In this regard, the VMC 360 may be operable to resolve contention for radio resources by transitioning the VM 340 and the VM 350 between the three VM states. For example, the VMC 360 may be operable to ensure that at most one of the VM 340 and the VM 350 is in the active state for a given time instant. In this regard, the VMC 360 may suspend, for example, the VM 350 from using or sharing radio resources available in the single radio resource unit 370 in order to allow an uninterrupted radio resource usage by the VM 340. The suspended VM 350 may be resumed whenever radio resources in the single radio resource unit 370 become available for sharing by the VM 350 to continue idle mode activities on the VM 350.

The VMC 360 may be operable to coordinate the usage of the radio resources to support concurrent procedures initiated by the VM 340 and the VM 350. For example, the VM 340 and the VM 350 each may be granted by the VMC 360 a portion of radio resources available in the single radio resource unit 370 to concurrently monitor paging events and/or to concurrently perform idle mode procedures or activities such as, for example, cell selection/reselection by sharing the single radio resource unit 370. In this regard, the VMC 360 may be operable to perform access arbitration at the task level in order to control concurrent access to the shared radio resources from multiple VM tasks of the VM 340 and/or the VM 350. For example, for each of intended VM tasks, the VMC 360 may be operable to tabulate activities associated with an intended VM task and on-going activities associated with one or more of plurality of VMs for a conflict check.

In instances where one or more perceived or actual conflicts occur, the VMC 360 may be operable to perform access arbitration on the intended VM task based on VM task priority information, activity status of one or more of plurality of VMs and/or radio resources available in the single radio resource unit 370. The access for the intended VM task may be immediately accepted, accepted with a delay or rejected. In instances where the access for the intended VM task is delayed, the VMC 360 may be operable to determine what time instants the access for the intended VM task may be accepted or granted. A VM associated with the VM task may re-send an admission request to the VMC 360 for the same VM task at the determined one or more time instants. After the access for the VM task is accepted, the VMC 360 may be operable to assign radio resources to the VM task to proceed with associated activities such as receiving traffic related to a corresponding SIM card such as the SIM card 212.

The single radio resource unit 370 may comprise suitable logic, interfaces and/or code that may be operable to provide PHY and RF support.

In an exemplary operation, the MMI module 310 may interact between a user of the multi-SIM multi-standby communication device 200 and applications that are related to the SIM card 212 and the SIM card 214, for example, inserted into the SIM card controller 208. Tasks or instances related to the SIM card 212 and the SIM card 214 may be handled by the VM 340 and the VM 350, respectively. The VMC 360 may coordinate the usage of radio resources available in the single radio resource unit 370 for sharing by the VM 340 and the VM 350. In this regard, the VMC 360 may be operable to control the access to radio resources available in the single radio resource unit 370 by performing access arbitration at each VM task. More specifically, the VMC 360 may manage or control the concurrent accesses to the shared radio resources from multiple VM tasks of the VM 340 and/or the VM 350. For an intended VM task, the VMC 360 may be operable to compare activities associated with the intended VM task with on-going activities associated with one or more of the plurality of VMs for a conflict check. In instances where one or more conflicts occur, the VMC 360 may arbitrate the access for the intended VM task based on VM task priority information, activity status of other VMs and radio resources available in the single radio resource unit 370. The intended VM task may be immediately accepted, accepted with a delay or rejected. With a delayed access for the intended VM task, the VMC 360 may be operable to provide information on when the intended VM task should be accepted to a corresponding VM such as the VM 340. The VM 340 may repeat the admission request for the same VM task at corresponding time instants. After the access for the intended VM task is accepted, the VMC 360 may be operable to assign radio resources to the intended VM task to proceed with associated activities such as receiving traffic related to a corresponding SIM card such as the SIM card 212.

FIG. 4 is a block diagram illustrating an exemplary operation state machine that is utilized by a virtual modem controller to manage radio resource usage among a plurality of virtual models, in accordance with an embodiment of the invention. Referring to FIG. 4, there is shown an exemplary state machine 400 that is utilized by the VMC 360. The state machine 400 comprise a VMC_Ready state 402, a VMC_Wait_VM_Activation state 404 and a VMC_Wait VM_Resumption state 406.

The VMC_Ready state 402 is a state that indicates that the VMC 360 is ready to start processing admission control requests received from one or more VMs. The VMC_Wait_VM_Activation state 404 is a state that indicates that the VMC 360 waits for responses from one or more VMs to confirm activities on the one or more VMs are suspended and radio resources previously allocated on the one or more VMs are released. The VMC_Wait_VM_Resumption state 406 is a state that indicates that the VMC 360 waits for available radio resources in order to resume suspended one or more VMs.

The VMC_Ready state 402 may be set as a default state for the VMC 360. In the VMC_Ready state 402, the VMC 360 may be ready to coordinate the usage of radio resources available in the single radio resource unit 370 for sharing between the VM 340 and the VM 350, for example. The VMC 360 may be configured to act upon an admission control request while in the VMC_Ready state 402. The VMC 360 may receive an admission control request that may be initiated by a request from a CAPI task or from an instance of an air interface protocol stack. In instances where the VM 360 receives an admission request from, for example, the VM 340 in an idle state, to activate the VM 340, the VMC 360 may request the air interface protocol stack 356 of the VM 350 to suspend its ongoing activity and release the radio resources. While the confirmation from the air interface protocol stack 356 of the VM 350 is due for this action, the VMC 360 may transition from the VMC_Ready state 402 to the VMC_Wait_VM_Activation state 404 to wait for a response from the VM 350 in order to confirm that on-going activities on the VM 350 are suspended and radio resource previously allocated on the VM 350 are released. In instances where there is no conflict in allowing a new admission control request, the VMC 360 may transition from the VMC_Wait_VM_Activation state 404 back to the VMC_Ready state 402. The VMC 360 may save the admission control requests received in the VMC_Wait_VM_Activation state 404 and act upon the saved admission control requests when the VMC 360 is back in VMC_Ready state 420. This may ensure that the first admission request from an instance of CAPI or stack operation may be answered before responding to other subsequently received admission control requests.

In instances where a VM in an active state, for example, the VM 340, indicates that it is no longer using the radio resources, the VMC 360 may request the air interface protocol stack 356 of the VM 350 to resume its idle mode activities such as cell selection/reselection. While the confirmation from the air interface protocol stack 356 of the VM 350 is due for this action, the VMC 360 may transition from the VMC_Ready state 402 to the VMC_Wait_VM_Resumption state 406 to wait. In instances where there is no conflict in allowing a new admission control request, the VMC 360 may transition from the VMC_Wait_VM_Resumption state 406 stay back to the VMC_Ready state 402. The VMC 360 may save the admission control requests received in the VMC_Wait_VM_Resumption state 406 and act upon the saved admission control requests when the VMC 360 is back in VMC_Ready state 420. This again may ensure that the first admission request from an instance of CAPI or stack operation may be answered before responding to other subsequently received admission control requests.

FIG. 5 is a flow chart illustrating exemplary steps that may be utilized by a virtual modem controller to perform task-level access arbitration between virtual modems, in accordance with an embodiment of the invention. Referring to FIG. 5, the exemplary steps may start with step 502. In step 502, a VM such as the VM 340 may be operable to send an admission request to the VMC 360 for a VM task to access a single radio resource unit such as the single radio resource unit 370. In step 504, the VMC 360 may be operable to compare activities associated with the intended VM task with current activities associated with one or more VMs for a conflict check or detection. In step 506, the VMC 360 may determine whether there may be any actual and/or perceived conflicts between the activities associated with the intended VM task and the current activities associated with one or more VMs. In instances where there are no conflicts detected, the in step 508. In step 508, the VMC 360 may determine whether to accept the access for the intended VM task. In step 510, the VM 340 may be operable to proceed with desired activities associated with the VM task once radio resources are assigned to the VM task by the VMC 360. The exemplary steps may end in step 512.

In step 506, in instances where one or more conflicts are detected, then control passes to step 514. Then in step 514, the VMC 360 may be operable to make a decision as to whether the access for the intended VM task should be rejected or accepted. The decision may be based on exemplary factors comprising, for example, the corresponding VM task priority information, activity status of one or more of plurality of VMs and radio resources available in the single radio resource unit 370. The VMC 360 may communicate the decision to the VM 340. In step 516, in instances where the access for the intended VM is immediately accepted by the VMC 360, then the exemplary steps may return to step 510.

In step 516, in instances where the access for the intended VM is not immediately accepted by the VMC 360, then control passes to step 518. In step 518, in instances where the access for the intended VM is delayed by the VMC 360, then control passes to step 520. In step 520, the VM 340 may be operable to send a request to access radio resource in the single radio resource unit 370 for the same VM task at one or more specific time instants indicated by the VMC 360. The exemplary steps may return to step 504.

In various exemplary aspects of the method and system for task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device, a multi-SIM and multi-standby communication device such as the multi-SIM multi-standby communication device 200 comprises a single radio resource unit such as the single radio resource unit 370. The single radio resource unit 370 is shared by a plurality of VMs such as the VM 340 and the VM 350 in the VMF 330. Each of the VMs is uniquely associated with a single one of a plurality of SIM cards such as the SIM cards 212-222 that are coupled to the multi-SIM multi-standby communication device 200 through the SIM card controller 208. Operations of the VMs in the VMA 330 may be managed or coordinated by the VMC 360. The VMC 360 may also be operable to control the access, for each VM task, to radio resources available in the single radio resource unit 370.

For example, the VMC 360 may receive one or more requests, from one or more of the plurality of VMs, for one or more tasks to access radio resources in the single radio resource unit 370. The VMC 360 may arbitrate the requested access based on task priority information, current activities associated with one or more of the plurality of VMs, and the availability of radio resources in the single radio resource unit 370. The VMC 360 may be operable to compare activities associated with the intended VM task with on-going activities associated with one or more of the plurality of VMs for a conflict check. In instances where one or more conflicts are identified or detected, the VMC 360 may arbitrate the access for the intended VM task based on VM task priority information, current activity status of one or more of the plurality of VMs and radio resources available in the single radio resource unit 370. The VMC 360 may be operable to make a decision on whether to accept or reject the access for the intended VM task. The access for the intended VM task may be immediately accepted, accepted with a delay or rejected.

In instances where one or more procedural and/or radio resource conflicts are identified, the VMC 360 may be operable to suspend at least a portion of current activities of associated with one or more of the plurality of VMs in order to immediately accept the access for the intended VM task to the radio resources in the single radio resource unit 370. The suspended activities may be resumed once radio resources become available to use in the single radio resource unit 370. In other words, related VMs for the suspended activities may return to idle state to resume the suspended activities. With a delayed access for the intended VM task, the VMC 360 may be operable to determine when or what time instants the access for the intended VM task may be accepted or granted. In this regard, the VM 340 may send a subsequent admission request, at the determined one or more time instants, for the same VM task to the VMC 360. Upon the reception of the subsequent admission request at the determined one or more time instants, the VMC 360 may be operable to grant the access for the intended task to proceed with associated activities such as receiving traffic related to a corresponding SIM card such as the SIM card 212.

Other embodiments of the invention may provide a non-transitory computer readable medium and/or storage medium, and/or a non-transitory machine readable medium and/or storage medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for task-level access arbitration between virtual modems in a multi-SIM multi-standby communication device.

Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.

The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.

While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims. 

1. A method for communication, the method comprising: in a multiple-subscriber identity module (multi-SIM) multi-standby communication device comprising a single radio resource unit that is shared by a plurality of virtual modems: receiving one or more requests, from one or more of said plurality of virtual modems, for one or more tasks to access radio resources in said single radio resource unit; and arbitrating said access to said radio resources in said single radio resource unit.
 2. The method according to claim 1, wherein said arbitration is based on a priority associated with each of said one or more tasks, availability of said radio resources, and/or current activity of one or more of said plurality of virtual modems.
 3. The method according to claim 2, comprising identifying procedural and/or radio resource conflicts for said arbitration based on said comparison.
 4. The method according to claim 3, comprising if no procedural and/or radio resource conflicts are identified, accepting said access to said radio resources in said single radio resource unit.
 5. The method according to claim 3, comprising if one or more procedural and/or radio resource conflicts are identified, rejecting said access to said radio resources in said single radio resource unit.
 6. The method according to claim 3, comprising if one or more procedural and/or radio resource conflicts are identified, suspending at least a portion of said current activity of said one or more of said plurality of virtual modems to immediately accept said access to said radio resources in said single radio resource unit.
 7. The method according to claim 6, comprising resuming said suspended portion of said current activity of said one or more of said plurality of virtual modems once radio resources become available to use in said single radio resource unit.
 8. The method according to claim 3, comprising if one or more procedural and/or radio resource conflicts are identified, delaying said access to said radio resources in said single radio resource unit.
 9. The method according to claim 8, comprising determining one or more time instants for said delayed access based on said priority associated with each of said one or more tasks, said availability of said radio resources, and/or said current activity of said one or more of said plurality of virtual modems.
 10. The method according to claim 9, comprising accepting, at said determined one or more time instants, said delayed access to said radio resources in said single radio resource unit.
 11. A system for communication, the system comprising: one or more processors and/or circuits for use in a multiple-subscriber identity module (multi-SIM) multi-standby communication device comprising a single radio resource unit that is shared by a plurality of virtual modems, said one or more processors and/or circuits being operable to: receive one or more requests, from one or more of said plurality of virtual modems, for one or more tasks to access radio resources in said single radio resource unit; and arbitrate said access to said radio resources in said single radio resource unit.
 12. The system according to claim 1, wherein said arbitration is based on a priority associated with each of said one or more tasks, availability of said radio resources, and/or current activity of one or more of said plurality of virtual modems.
 13. The system according to claim 12, wherein said one or more processors and/or circuits being operable to identify procedural and/or radio resource conflicts for said arbitration based on said comparison.
 14. The system according to claim 13, wherein said one or more processors and/or circuits being operable to accept said access to said radio resources in said single radio resource unit if no procedural and/or radio resource conflicts are identified.
 15. The system according to claim 13, wherein said one or more processors and/or circuits being operable to reject said access to said radio resources in said single radio resource unit if one or more procedural and/or radio resource conflicts are identified.
 16. The system according to claim 13, wherein said one or more processors and/or circuits being operable to suspend at least a portion of said current activity of said one or more of said plurality of virtual modems to immediately accept said access to said radio resources in said single radio resource unit if one or more procedural and/or radio resource conflicts are identified.
 17. The system according to claim 16, wherein said one or more processors and/or circuits being operable to resume said suspended portion of said current activity of said one or more of said plurality of virtual modems once radio resources become available to use in said single radio resource unit.
 18. The system according to claim 13, wherein said one or more processors and/or circuits being operable to delay said access to said radio resources in said single radio resource unit if one or more procedural and/or radio resource conflicts are identified.
 19. The system according to claim 18, wherein said one or more processors and/or circuits being operable to determine one or more time instants for said delayed access based on said priority associated with each of said one or more tasks, said availability of said radio resources, and/or said current activity of said one or more of said plurality of virtual modems.
 20. The system according to claim 19, wherein said one or more processors and/or circuits being operable to accept, at said determined one or more time instants, said delayed access to said radio resources in said single radio resource unit. 